﻿//力扣 26. 删除有序数组中的重复项
//思路：使用双指针i，j
//i对数组进行遍历，j用来保存不重复的数
//两个数字要是不相等，j就后移一位将i位置的数字保存下来
//最后返回j

//c版本
//int removeDuplicates(int* nums, int numsSize)
//{
//	int i = 0;
//	int j = 0;
//	for (i = 1; i < numsSize; i++)
//	{
//		if (nums[i] != nums[j])
//		{
//			nums[++j] = nums[i];
//		}
//	}
//	return j + 1;
//}

//c++版本
#include <vector>
using namespace std;

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int n = nums.size();
        int fast = 1, slow = 1;
        while (fast < n)
        {
            if (nums[fast] != nums[fast - 1])
            {
                nums[slow] = nums[fast];
                ++slow;
            }
            ++fast;
        }

        return slow;
    }
};